Computer graphics systems capable of providing dynamic displays (motion pictures) are well known in the prior art. Typically such displays are raster scanned on a video display apparatus as a cathode ray tube (CRT). To accomplish such displays with smoothly moving objects, it is necessary to frequently refresh the display with a new image. For example, to avoid flicker and depict smooth movement, a fresh display must be shown every one-twentieth to one-sixtieth of a second. Consequently, display data represented by signals, must be effectively developed, allocated and managed. Traditionally, such operations have involved compiling a display file from an image generator, as treated in the book, PRINCIPLES OF INTERACTIVE COMPUTER GRAPHICS, published 1979 by McGraw-Hill, Inc., by William M. Newman and Robert F. Sproull; specifically see Chapter 8.
In prior computer graphics systems, image data indicating color and intensity for each picture element (pixel) has been assembled for display using a so-called "double-buffered display frame buffer". Note that the data might take the form of multiple-digit numerical values representing the intensity and color for each pixel. Essentially, while representative image signals for a picture are being provided from one side of the frame buffer (as to drive a CRT display) the other side of the frame buffer is cleared of previous data and rewritten with fresh data for the next display picture. The roles of the two frame buffer sides are reversed cyclically to provide image signals to the display apparatus in a rapid sequence. The double buffer technique has been effective in the past, particularly when the complete image (complete display of a screen) is treated as a single viewing window. However, a need has existed for more effectively clearing and rewriting data, as for selective display.
Picture systems have been developed that are capable of providing image signals in rapid sequence that are representative of several different views concurrently. Accordingly, image data is available for several different dynamic images as in a split screen or windowed display. Managing the data for refreshing such a multiple-window dynamic display involves added complications. In that regard, consider the use of a traditional double-buffer frame buffer. Alternatively, the sides of the frame buffer receive data composed for display then deliver the data in ordered scanning sequence. After supplying data, each side traditionally has been cleared to receive new data. However, selective clearing provides distinct advantages and a need has existed for improved systems in that regard.
Summarizing to some extent, a need exists for an improved system for managing image data preparatory to driving a dynamic display that may include distinct windows. Specifically, a need exists for a system capable of performing the following operations: (1) the operation of selectively writing only to the window of interest in a display and not writing in other windows, even where one window partially overlays another; (2) the operation of selectively and rapidly clearing a window of interest partly or fully without clearing the complete screen; (3) the operation of swapping the frame buffer corresponding only to a window of current interest; and (4) the selection of a given area within a given window for display, whether data to be displayed on the screen comes from, (a) a default background color for the window, (b) one or the other side of the frame buffer, or (c) both buffer sides together (to yield more bits per pixel for nondynamic pictures).
In general, the dynamic display system of the present invention is capable of accomplishing the above operations in an expedient and economical manner. An image frame buffer stores image data which is entered and discharged in accordance with data registered in a window frame buffer and a plurality of valid data storage planes defining counters. In the disclosed embodiment, the window frame buffer registers window codes which define windows with respect to the contents of the image frame buffer. The valid data planes hold valid count value indications of individual area data of current interest. Generally, the window frame buffer defines windows with respect to the image frame buffer and the valid data planes define individual areas, e.g. pixels, of current interest with respect to the contents of the image frame buffer. That is, counts in the valid data planes indicate data and background for display and rewrite. A valid counter or register provides current valid counts which are tested against the pixel-related counts in the valid data planes. Individual pixel coincidence indicates the pixel data in the frame buffer is valid. Accordingly, the data is used in the display. Invalid data prompts the display of background data. As disclosed below, the system may provide valid counts for each of several windows.